/**
	* Copyright (c) minuteproject, minuteproject@gmail.com
	* All rights reserved.
	* 
	* Licensed under the Apache License, Version 2.0 (the "License")
	* you may not use this file except in compliance with the License.
	* You may obtain a copy of the License at
	* 
	* http://www.apache.org/licenses/LICENSE-2.0
	* 
	* Unless required by applicable law or agreed to in writing, software
	* distributed under the License is distributed on an "AS IS" BASIS,
	* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
	* See the License for the specific language governing permissions and
	* limitations under the License.
	* 
	* More information on minuteproject:
	* twitter @minuteproject
	* wiki http://minuteproject.wikispaces.com 
	* blog http://minuteproject.blogspot.net
	* 
*/
/**
	* template reference : 
	* - name : OpenxavaDomainObjectUML
	* - file name : DomainObjectUMLJPAAnnotationOXAnnotationV4.vm
*/
package sistema_oficial.sistema_oficial.domain.sistemaoficial;

//MP-MANAGED-ADDED-AREA-BEGINNING @import@
//MP-MANAGED-ADDED-AREA-ENDING @import@
import java.sql.*;
import java.util.Date;
import java.util.List;
import java.util.ArrayList;
import java.util.Set;
import java.util.HashSet;

import javax.persistence.*;
import org.openxava.annotations.*;

import sistema_oficial.sistema_oficial.domain.sistemaoficial.DetalleAcreditable;
import sistema_oficial.sistema_oficial.domain.sistemaoficial.DetalleDebitable;

/**
 *
 * <p>Title: Partida</p>
 *
 * <p>Description: Domain Object describing a Partida entity</p>
 *
 */
@Entity (name="Partida")
@Table (name="partida")
@Views({
//MP-MANAGED-UPDATABLE-BEGINNING-DISABLE @view-base-partida@
	@View(
		name="base",
		members=
        "" 	
        + "identificador  ; "
        + "numero  ; "
        + "fecha  ; "
        + "explicacion  ; "
		),
//MP-MANAGED-UPDATABLE-ENDING
	@View(
		name="Create", 
		extendsView="base"
	),
	@View(
		name="Update", 
		extendsView="base",
        members=
          "" 	
	    + "detalleAcreditablePartidaViaPartidaIdentificador { detalleAcreditablePartidaViaPartidaIdentificador };" 
	    + "detalleDebitablePartidaViaPartidaIdentificador { detalleDebitablePartidaViaPartidaIdentificador };" 
	),
	@View(extendsView="base",
        members=
          "" 	
	    + "detalleAcreditablePartidaViaPartidaIdentificador { detalleAcreditablePartidaViaPartidaIdentificador };" 
	    + "detalleDebitablePartidaViaPartidaIdentificador { detalleDebitablePartidaViaPartidaIdentificador };" 
	),
    @View(name="partidaDEFAULT_VIEW", 
	   members=
          " identificador ;" 	
        + "numero  ; "
        + "fecha  ; "
        + "explicacion  ; "
	),
//MP-MANAGED-UPDATABLE-BEGINNING-DISABLE @view-reference-partida@
    @View(name="reference", 
       extendsView="partidaDEFAULT_VIEW"
//MP-MANAGED-UPDATABLE-ENDING
    )
})

@Tabs({
@Tab(
properties=
     " numero "
    +",  fecha "
    +",  explicacion "
)
,
@Tab(
name = "PartidaTab",
properties=
     " numero "
    +",  fecha "
    +",  explicacion "
)
,
@Tab(
name = "PartidaTabWithRef",
properties=
     " numero "
    +",  fecha "
    +",  explicacion "
)
})
//MP-MANAGED-ADDED-AREA-BEGINNING @class-annotation@
//MP-MANAGED-ADDED-AREA-ENDING @class-annotation@
public class Partida {

    @Hidden @Id @Column(name="identificador" )
    private Integer identificador; 

//MP-MANAGED-ADDED-AREA-BEGINNING @numero-field-annotation@
//MP-MANAGED-ADDED-AREA-ENDING @numero-field-annotation@

//MP-MANAGED-UPDATABLE-BEGINNING-DISABLE @ATTRIBUTE-numero@
    @Column(name="numero",   nullable=false,  unique=false)
    @Required
    private Integer numero;	
//MP-MANAGED-UPDATABLE-ENDING

//MP-MANAGED-ADDED-AREA-BEGINNING @fecha-field-annotation@
//MP-MANAGED-ADDED-AREA-ENDING @fecha-field-annotation@

//MP-MANAGED-UPDATABLE-BEGINNING-DISABLE @ATTRIBUTE-fecha@
    @Column(name="fecha",   nullable=false,  unique=false)
    @Required
    private Date fecha;	
//MP-MANAGED-UPDATABLE-ENDING

//MP-MANAGED-ADDED-AREA-BEGINNING @explicacion-field-annotation@
//MP-MANAGED-ADDED-AREA-ENDING @explicacion-field-annotation@

//MP-MANAGED-UPDATABLE-BEGINNING-DISABLE @ATTRIBUTE-explicacion@
    @Column(name="explicacion",  length=100,  nullable=true,  unique=false)
    private String explicacion;	
//MP-MANAGED-UPDATABLE-ENDING


//children
//MP-MANAGED-UPDATABLE-BEGINNING-DISABLE @child-detalleAcreditablePartidaViaPartidaIdentificador-partida@
    @OneToMany (targetEntity=sistema_oficial.sistema_oficial.domain.sistemaoficial.DetalleAcreditable.class, fetch=FetchType.LAZY, mappedBy="partidaIdentificador", cascade=CascadeType.REMOVE)//, cascade=CascadeType.ALL)
    private Set <DetalleAcreditable> detalleAcreditablePartidaViaPartidaIdentificador = new HashSet<DetalleAcreditable>(); 
   
//MP-MANAGED-UPDATABLE-ENDING
//MP-MANAGED-UPDATABLE-BEGINNING-DISABLE @child-detalleDebitablePartidaViaPartidaIdentificador-partida@
    @OneToMany (targetEntity=sistema_oficial.sistema_oficial.domain.sistemaoficial.DetalleDebitable.class, fetch=FetchType.LAZY, mappedBy="partidaIdentificador", cascade=CascadeType.REMOVE)//, cascade=CascadeType.ALL)
    private Set <DetalleDebitable> detalleDebitablePartidaViaPartidaIdentificador = new HashSet<DetalleDebitable>(); 
   
//MP-MANAGED-UPDATABLE-ENDING
//m2m
    /**
    * Default constructor
    */
    public Partida() {
    }


    public Integer getIdentificador() {
        return identificador;
    }
	
    public void setIdentificador (Integer identificador) {
        this.identificador =  identificador;
    }
    

//MP-MANAGED-UPDATABLE-BEGINNING-DISABLE @GETTER-SETTER-numero@
    public Integer getNumero() {
        return numero;
    }
	
    public void setNumero (Integer numero) {
        this.numero =  numero;
    } 
//MP-MANAGED-UPDATABLE-ENDING

//MP-MANAGED-UPDATABLE-BEGINNING-DISABLE @GETTER-SETTER-fecha@
    public Date getFecha() {
        return fecha;
    }
	
    public void setFecha (Date fecha) {
        this.fecha =  fecha;
    } 
//MP-MANAGED-UPDATABLE-ENDING

//MP-MANAGED-UPDATABLE-BEGINNING-DISABLE @GETTER-SETTER-explicacion@
    public String getExplicacion() {
        return explicacion;
    }
	
    public void setExplicacion (String explicacion) {
        this.explicacion =  explicacion;
    } 
//MP-MANAGED-UPDATABLE-ENDING



    public Set<DetalleAcreditable> getDetalleAcreditablePartidaViaPartidaIdentificador() {
        if (detalleAcreditablePartidaViaPartidaIdentificador == null){
            detalleAcreditablePartidaViaPartidaIdentificador = new HashSet<DetalleAcreditable>();
        }
        return detalleAcreditablePartidaViaPartidaIdentificador;
    }

    public void setDetalleAcreditablePartidaViaPartidaIdentificador (Set<DetalleAcreditable> detalleAcreditablePartidaViaPartidaIdentificador) {
        this.detalleAcreditablePartidaViaPartidaIdentificador = detalleAcreditablePartidaViaPartidaIdentificador;
    }	
    
    public void addDetalleAcreditablePartidaViaPartidaIdentificador (DetalleAcreditable detalleAcreditable) {
    	    getDetalleAcreditablePartidaViaPartidaIdentificador().add(detalleAcreditable);
    }
    
    public Set<DetalleDebitable> getDetalleDebitablePartidaViaPartidaIdentificador() {
        if (detalleDebitablePartidaViaPartidaIdentificador == null){
            detalleDebitablePartidaViaPartidaIdentificador = new HashSet<DetalleDebitable>();
        }
        return detalleDebitablePartidaViaPartidaIdentificador;
    }

    public void setDetalleDebitablePartidaViaPartidaIdentificador (Set<DetalleDebitable> detalleDebitablePartidaViaPartidaIdentificador) {
        this.detalleDebitablePartidaViaPartidaIdentificador = detalleDebitablePartidaViaPartidaIdentificador;
    }	
    
    public void addDetalleDebitablePartidaViaPartidaIdentificador (DetalleDebitable detalleDebitable) {
    	    getDetalleDebitablePartidaViaPartidaIdentificador().add(detalleDebitable);
    }
    



//MP-MANAGED-ADDED-AREA-BEGINNING @implementation@
//MP-MANAGED-ADDED-AREA-ENDING @implementation@

}
